Performance, Scalability, and Semantics of Concurrent FIFO Queues
نویسندگان
چکیده
We introduce the notion of a k-FIFO queue which may dequeue elements out of FIFO order up to a constant k ≥ 0. Retrieving the oldest element from the queue may require up to k+ 1 dequeue operations (bounded fairness), which may return elements not younger than the k + 1 oldest elements in the queue (bounded age) or nothing even if there are elements in the queue. A k-FIFO queue is starvation-free for finite k where k+1 is what we call the worst-case semantical deviation (WCSD) of the queue from a regular FIFO queue. The WCSD bounds the actual semantical deviation (ASD) of a k-FIFO queue from a regular FIFO queue when applied to a given workload. Intuitively, the ASD keeps track of the number of dequeue operations necessary to return oldest elements and the age of dequeued elements. We show that a number of existing concurrent algorithms implement k-FIFO queues whose WCSD are determined by configurable constants independent from any workload. We then introduce so-called Scal queues, which implement k-FIFO queues with generally larger, workloaddependent as well as unbounded WCSD. Since ASD cannot be obtained without prohibitive overhead we have developed a tool that computes lower bounds on ASD from time-stamped runs. Our microand macrobenchmarks on a state-ofthe-art 40-core multiprocessor machine show that Scal queues, as an immediate consequence of their weaker WCSD, outperform and outscale existing implementations at the expense of moderately increased lower bounds on ASD.
منابع مشابه
Brief Announcement: Scalability versus Semantics of Concurrent FIFO Queues∗
Maintaining data structure semantics of concurrent queues such as first-in first-out (FIFO) ordering requires expensive synchronization mechanisms which limit scalability. However, deviating from the original semantics of a given data structure may allow for a higher degree of scalability and yet be tolerated by many concurrent applications. We introduce the notion of a k-FIFO queue which may b...
متن کاملFast and Scalable k-FIFO Queues
We introduce fast and scalable algorithms that implement boundedand unbounded-size, lock-free, linearizable k-FIFO queues with empty (and full) check. Logically, a k-FIFO queue can be understood as queue where each element may be dequeued out-of-order up to k− 1 or as pool where each element is dequeued within a k-bounded number of dequeue operations. We show experimentally that there exist opt...
متن کاملMulticore Scalability of Concurrent Objects
We study the design, implementation, performance, and scalability of concurrent objects on multicore systems. In the first part we analyze the apparent trade-off between adherence to concurrent data structure semantics and scalability based on a concurrent FIFO queue as running example. We quantitatively relax the sequential specification of a FIFO queue to a k-FIFO queue, which can be understo...
متن کاملFast and Scalable, Lock-Free k-FIFO Queues
We introduce fast and scalable algorithms that implement boundedand unbounded-size lock-free k-FIFO queues on parallel, shared memory hardware. Logically, a k-FIFO queue can be understood as queue where elements may be dequeued out-of-order up to k 1, or as pool where the oldest element is dequeued within at most k dequeue operations. The presented algorithms enable up to k enqueue and k dequeu...
متن کاملThe Contention Avoiding Concurrent Priority Queue
Efficient and scalable concurrent priority queues are crucial for the performance of many multicore applications, e.g. for task scheduling and the parallelization of various algorithms. Linearizable concurrent priority queues with traditional semantics suffer from an inherent sequential bottleneck in the head of the queue. This bottleneck is the motivation for some recently proposed priority qu...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012